package acciones;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Vector;

import persistencia.ArticuloDAO;
import persistencia.RevisionDAO;
import persistencia.RevisorDAO;
import dominio.Articulo;
import dominio.Persona;
import dominio.Revision;
import dominio.Revisor;

import com.opensymphony.xwork2.ActionSupport;

public class ValorarArticulo extends ComprobarSesion {
	private static final long serialVersionUID = 1L;
	private Persona persona;
	private String opcion;
	private String titulo;
	private String comentariosR;
	private String comentariosE;
	private Vector<Revision> revisiones;
	private int idArticulo;

	public String execute() {
		try {
			persona = checkSesion("persona");
			if (persona != null) {
				
				if (opcion.equalsIgnoreCase("Ver Revisiones")) {
					revisiones = RevisionDAO.RevisionArticulo(idArticulo);
				} else {
					Calendar today = new GregorianCalendar();
					SimpleDateFormat df = new SimpleDateFormat();
					df.applyPattern("yyyy-MM-dd");
					Vector<Revision> rev = RevisionDAO.RevisionArticulo(idArticulo);
					for (int i = 0; i < rev.size(); i++) {
						rev.get(i).setComentariosEditor(comentariosE);
						rev.get(i).setFechaFinalizacion(df.format(today.getTime()));
						RevisionDAO.actualizar(rev.get(i));
					}					
					if (opcion.equalsIgnoreCase("Validar")) {
						ArticuloDAO.updateEstado("CERRADO", idArticulo);
					} else if (opcion.equalsIgnoreCase("Reenviar a Autor")) {
						ArticuloDAO.updateEstado("REPETIR", idArticulo);
					}
					titulo = null;
				}
				return SUCCESS;
			} else {
				return ERROR;
			}
		} catch (Exception e) {
			return ERROR;
		}
	}

	public String getOpcion() {
		return opcion;
	}

	public void setOpcion(String opcion) {
		this.opcion = opcion;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public int getIdArticulo() {
		return idArticulo;
	}

	public void setIdArticulo(int idArticulo) {
		this.idArticulo = idArticulo;
	}

	public Persona getPersona() {
		return persona;
	}

	public void setPersona(Persona persona) {
		this.persona = persona;
	}

	public String getComentariosR() {
		return comentariosR;
	}

	public void setComentariosR(String comentariosR) {
		this.comentariosR = comentariosR;
	}

	public String getComentariosE() {
		return comentariosE;
	}

	public void setComentariosE(String comentariosE) {
		this.comentariosE = comentariosE;
	}

	public Vector<Revision> getRevisiones() {
		return revisiones;
	}

	public void setRevisiones(Vector<Revision> revisiones) {
		this.revisiones = revisiones;
	}

}
